package com.campus.help.common;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码枚举
 *
 * @author campus-help
 * @since 2025-09-18
 */
@Getter
@AllArgsConstructor
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    ERROR(500, "操作失败"),

    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),

    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),

    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),

    /**
     * 方法不允许
     */
    METHOD_NOT_ALLOWED(405, "方法不允许"),

    /**
     * 请求超时
     */
    REQUEST_TIMEOUT(408, "请求超时"),

    /**
     * 服务器内部错误
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),

    /**
     * 服务不可用
     */
    SERVICE_UNAVAILABLE(503, "服务不可用"),

    /**
     * 业务异常
     */
    BUSINESS_ERROR(1000, "业务异常"),

    /**
     * 用户不存在
     */
    USER_NOT_FOUND(1001, "用户不存在"),

    /**
     * 用户已存在
     */
    USER_ALREADY_EXISTS(1002, "用户已存在"),

    /**
     * 密码错误
     */
    PASSWORD_ERROR(1003, "密码错误"),

    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1004, "验证码错误"),

    /**
     * 微信登录失败
     */
    WECHAT_LOGIN_ERROR(1005, "微信登录失败"),

    /**
     * 订单不存在
     */
    ORDER_NOT_FOUND(2001, "订单不存在"),

    /**
     * 订单状态错误
     */
    ORDER_STATUS_ERROR(2002, "订单状态错误"),

    /**
     * 文件上传失败
     */
    FILE_UPLOAD_ERROR(3001, "文件上传失败"),

    /**
     * 文件不存在
     */
    FILE_NOT_FOUND(3002, "文件不存在"),

    /**
     * 登录失败
     */
    LOGIN_ERROR(4001, "登录失败"),

    /**
     * 账号被禁用
     */
    ACCOUNT_DISABLED(4002, "账号被禁用"),

    /**
     * 系统错误
     */
    SYSTEM_ERROR(5000, "系统错误");

    /**
     * 状态码
     */
    private final Integer code;

    /**
     * 状态消息
     */
    private final String message;
}
